package com.ktgj.flight.service;

import com.ktgj.flight.domain.FlightAdjust;
import com.ktgj.flight.domain.vo.AdjustPassengerVo;
import com.ktgj.flight.domain.vo.FlightAdjustPassengerVo;
import com.ktgj.flight.domain.vo.FlightAdjustVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 出票渠道调整Service接口
 * 
 * @author ruoyi
 * @date 2021-11-10
 */
public interface IFlightAdjustService
{
    /**
     * 查询出票渠道调整
     * 
     * @param adjustId 出票渠道调整ID
     * @return 出票渠道调整
     */
    public FlightAdjust selectFlightAdjustById(Integer adjustId);

    /**
     * 查询出票渠道调整列表
     * 
     * @param flightAdjust 出票渠道调整
     * @return 出票渠道调整集合
     */
    public List<FlightAdjust> selectFlightAdjustList(FlightAdjust flightAdjust);

    /**
     * 新增出票渠道调整
     * 
     * @param flightAdjust 出票渠道调整
     * @return 结果
     */
    public int insertFlightAdjust(FlightAdjust flightAdjust);

    /**
     * 修改出票渠道调整
     * 
     * @param flightAdjust 出票渠道调整
     * @return 结果
     */
    public int updateFlightAdjust(FlightAdjust flightAdjust);

    /**
     * 批量删除出票渠道调整
     * 
     * @param adjustIds 需要删除的出票渠道调整ID
     * @return 结果
     */
    public int deleteFlightAdjustByIds(Integer[] adjustIds);

    /**
     * 删除出票渠道调整信息
     * 
     * @param adjustId 出票渠道调整ID
     * @return 结果
     */
    public int deleteFlightAdjustById(Integer adjustId);

    /**
     * 根据航司二字码和身份证号关联查询大客户信息
     * @param airCode 航司二字码
     * @param cardId 身份证号
     * @return
     */
    public FlightAdjust getFlightAdjustByAirCodeAndCardId(String airCode,String cardId);

    /**
     * 渠道调整列表
     * */
    public List<FlightAdjust> flightAdjustList(FlightAdjustVo flightAdjustVo);

    /**
     * 新增渠道调整
     * */
    public int addFlightAdjust(HttpServletRequest request, FlightAdjust flightAdjust) throws Exception;

    /**
     * 上传文件到服务器并反填
     * */
    public List<FlightAdjustPassengerVo> flightAdjustPassengerVo(MultipartFile file) throws Exception;

    /**
     * 查询待修改的渠道调整信息
     * */
    public AdjustPassengerVo selectAdjustPassengerVo(Long id);

    /**
     * 修改渠道调整信息
     * */
    public int updateAdjustPassengerVo(HttpServletRequest request, FlightAdjust flightAdjust) throws Exception;

    /**
     * 删除渠道调整信息及附属大客户信息
     * */
    public int delAdjustPassengerVo(Long id) throws Exception;
}
